Maps for UWP を使用すると、簡単にオフラインマップを利用できます。
このサンプルには、次のカスタム OfflineMapsSource クラスの実装が含まれています。
C# |
コードのコピー
|
---|---|
public class OfflineMapsSource : C1MultiScaleTileSource { private const string uriFormat = @"ms-appx:/Resources/OfflineMaps/ {Z}/{X}/{Y}.png"; public OfflineMapsSource() : base(0x8000000, 0x8000000, 0x100, 0x100, 0) { } protected override void GetTileLayers(int tileLevel, int tilePositionX, int tilePositionY, IList<object> source) { if (tileLevel > 8) { var zoom = tileLevel - 8; var uri = uriFormat;uri = uri.Replace("{X}", tilePositionX.ToString()); uri = uri.Replace("{Y}", tilePositionY.ToString()); uri = uri.Replace("{Z}", zoom.ToString()); source.Add(new Uri(uri)); } } } |
この実装クラスは、ローカルの Resource フォルダからタイル画像をロードします。このクラスは C1MultiScaleTileSource を継承します。
オフラインマップでカスタムタイルを使用するには、C1Maps の Source プロパティを設定する必要があります。このサンプルでは、OnMapsLoaded イベントが作成され、このイベント内で Source プロパティが設定されます。
C# |
コードのコピー
|
---|---|
void OnMapsLoaded(object sender, RoutedEventArgs e) { this.maps.Source = new OfflineMapsSource(); } |
このように、オフライン C1Maps コントロールの作成は簡単です。